package ln;

import ln.service.*;
import org.apache.maven.plugin.*;
import org.apache.maven.plugins.annotations.*;
import org.apache.maven.plugins.annotations.Mojo;

import java.io.*;

/**
 * Maven插件主类
 */
@Mojo(name = "count")
public class LineCounterMojo extends AbstractMojo {
    /**
     * 具体的业务组件
     */
    private final LineEvaluator lineEvaluator = new LineEvaluator(getLog());
    /**
     * 可在POM文件中配置的属性
     * start是在插件的configuration中配置的参数项，表示此行数统计器的起点目录路径
     */
    @Parameter(name = "start")
    private String start;

    /**
     * 插件运行的主方法
     */
    @Override
    public void execute() {
        lineEvaluator.evaluate(new File(start));
    }
}
